package com.legal.app.domain;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableName;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.legal.common.annotation.Excel;
import com.legal.common.core.domain.BaseEntity;

/**
 * 律师对象 z_lawyer
 * 
 * @author ALe
 * @date 2025-05-30
 */
@TableName("z_lawyer")
public class Lawyer extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 律师ID */
    private Long id;

    /** 关联用户ID（一对一） */
    @Excel(name = "关联用户ID", readConverterExp = "一=对一")
    private Long userId;

    /** 律所名称 */
    @Excel(name = "律所名称")
    private String lawFirm;

    /** 律所地址 */
    @Excel(name = "律所地址")
    private String lawFirmAddress;

    /** 律所电话 */
    @Excel(name = "律所电话")
    private String lawFirmPhone;

    /** 律师执业证号（唯一） */
    @Excel(name = "律师执业证号", readConverterExp = "唯=一")
    private String lawyerCertNo;

    /** 律师证照片URL */
    @Excel(name = "律师证照片URL")
    private String lawyerCertImage;

    /** 营业执照照片URL */
    @Excel(name = "营业执照照片URL")
    private String businessLicenseImage;

    /** 在线状态(0=离线,1=在线) */
    @Excel(name = "在线状态(0=离线,1=在线)")
    private Long isOnline;

    /** 图文咨询价格 */
    @Excel(name = "图文咨询价格")
    private BigDecimal textInquiryPrice;

    /** 视频咨询价格 */
    @Excel(name = "视频咨询价格")
    private BigDecimal videoInquiryPrice;

    /** 电话咨询价格 */
    @Excel(name = "电话咨询价格")
    private BigDecimal phoneInquiryPrice;

    /** 是否被收藏 */
    @Excel(name = "是否被收藏")
    private Long isFavorite;

    /** 收藏次数 */
    @Excel(name = "收藏次数")
    private Long favoriteCount;

    /** 服务次数 */
    @Excel(name = "服务次数")
    private Long serviceCount;

    /** 律师简介 */
    @Excel(name = "律师简介")
    private String introduction;

    /** 执业年限 */
    @Excel(name = "执业年限")
    private Long practiceYears;

    /** 教育背景 */
    @Excel(name = "教育背景")
    private String educationBackground;

    /** 胜诉案例数 */
    @Excel(name = "胜诉案例数")
    private Long successCases;

    /** 擅长领域（逗号分隔） */
    @Excel(name = "擅长领域", readConverterExp = "逗=号分隔")
    private String category;

    /** 律师状态(0=停用,1=正常,2=审核中,3=审核拒绝) */
    @Excel(name = "律师状态(0=停用,1=正常,2=审核中,3=审核拒绝)")
    private Long status;

    /** 搜索关键词 */
    private String keyword;

    /** 服务类型 */
    private Long serviceType;

    /** 最低评分 */
    private Double minRating;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setLawFirm(String lawFirm) {
        this.lawFirm = lawFirm;
    }

    public String getLawFirm() {
        return lawFirm;
    }

    public void setLawFirmAddress(String lawFirmAddress) {
        this.lawFirmAddress = lawFirmAddress;
    }

    public String getLawFirmAddress() {
        return lawFirmAddress;
    }

    public void setLawFirmPhone(String lawFirmPhone) {
        this.lawFirmPhone = lawFirmPhone;
    }

    public String getLawFirmPhone() {
        return lawFirmPhone;
    }

    public void setLawyerCertNo(String lawyerCertNo) {
        this.lawyerCertNo = lawyerCertNo;
    }

    public String getLawyerCertNo() {
        return lawyerCertNo;
    }

    public void setLawyerCertImage(String lawyerCertImage) {
        this.lawyerCertImage = lawyerCertImage;
    }

    public String getLawyerCertImage() {
        return lawyerCertImage;
    }

    public void setBusinessLicenseImage(String businessLicenseImage) {
        this.businessLicenseImage = businessLicenseImage;
    }

    public String getBusinessLicenseImage() {
        return businessLicenseImage;
    }

    public void setIsOnline(Long isOnline) {
        this.isOnline = isOnline;
    }

    public Long getIsOnline() {
        return isOnline;
    }

    public void setTextInquiryPrice(BigDecimal textInquiryPrice) {
        this.textInquiryPrice = textInquiryPrice;
    }

    public BigDecimal getTextInquiryPrice() {
        return textInquiryPrice;
    }

    public void setVideoInquiryPrice(BigDecimal videoInquiryPrice) {
        this.videoInquiryPrice = videoInquiryPrice;
    }

    public BigDecimal getVideoInquiryPrice() {
        return videoInquiryPrice;
    }

    public void setPhoneInquiryPrice(BigDecimal phoneInquiryPrice) {
        this.phoneInquiryPrice = phoneInquiryPrice;
    }

    public BigDecimal getPhoneInquiryPrice() {
        return phoneInquiryPrice;
    }

    public void setIsFavorite(Long isFavorite) {
        this.isFavorite = isFavorite;
    }

    public Long getIsFavorite() {
        return isFavorite;
    }

    public void setFavoriteCount(Long favoriteCount) {
        this.favoriteCount = favoriteCount;
    }

    public Long getFavoriteCount() {
        return favoriteCount;
    }

    public void setServiceCount(Long serviceCount) {
        this.serviceCount = serviceCount;
    }

    public Long getServiceCount() {
        return serviceCount;
    }

    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }

    public String getIntroduction() {
        return introduction;
    }

    public void setPracticeYears(Long practiceYears) {
        this.practiceYears = practiceYears;
    }

    public Long getPracticeYears() {
        return practiceYears;
    }

    public void setEducationBackground(String educationBackground) {
        this.educationBackground = educationBackground;
    }

    public String getEducationBackground() {
        return educationBackground;
    }

    public void setSuccessCases(Long successCases) {
        this.successCases = successCases;
    }

    public Long getSuccessCases() {
        return successCases;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getCategory() {
        return category;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    public String getKeyword() {
        return keyword;
    }

    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }

    public Long getServiceType() {
        return serviceType;
    }

    public void setServiceType(Long serviceType) {
        this.serviceType = serviceType;
    }

    public Double getMinRating() {
        return minRating;
    }

    public void setMinRating(Double minRating) {
        this.minRating = minRating;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("userId", getUserId())
                .append("lawFirm", getLawFirm())
                .append("lawFirmAddress", getLawFirmAddress())
                .append("lawFirmPhone", getLawFirmPhone())
                .append("lawyerCertNo", getLawyerCertNo())
                .append("lawyerCertImage", getLawyerCertImage())
                .append("businessLicenseImage", getBusinessLicenseImage())
                .append("isOnline", getIsOnline())
                .append("textInquiryPrice", getTextInquiryPrice())
                .append("videoInquiryPrice", getVideoInquiryPrice())
                .append("phoneInquiryPrice", getPhoneInquiryPrice())
                .append("isFavorite", getIsFavorite())
                .append("favoriteCount", getFavoriteCount())
                .append("serviceCount", getServiceCount())
                .append("introduction", getIntroduction())
                .append("practiceYears", getPracticeYears())
                .append("educationBackground", getEducationBackground())
                .append("successCases", getSuccessCases())
                .append("category", getCategory())
                .append("status", getStatus())
                .append("keyword", getKeyword())
                .append("serviceType", getServiceType())
                .append("minRating", getMinRating())
                .toString();
    }
}
